import axios from 'axios';
import router from '../router';
import { Message } from 'element-ui'
// axios.defaults.baseURL = "/api"
// 响应拦截器
axios.interceptors.response.use(
    
    success=>{
       
        //业务逻辑错误
        if(success.status&&success.status==200){

          console.log("success.data.code",success.data.code);
             // 未登录提示
             if(success.data.code==4001)
             {
                 console.log("success.data.code==4001");

                 Message.error({message:'尚未登录，请登录'});
                this.$router.push({
                    name:'login',
                 })

                 return;
             }

            if(success.data.code!="200"){
               
                Message.error({message:success.data.message});
               
                return;
            }

            // 请求成功，若有提示信息则弹窗提醒
            if(success.data.message){
                    Message.success({message:success.data.message});
                }
        }
        // 返回服务器响应的数据，只将返回的data属性返回给调用者，响应码和提示消息不返回
        return success.data.data;
    },
    error=>{
        console.log("error",error.response.code);
        if(error.response.code == 504||error.response.code == 404){
            Message.error({message:'服务器被吃了o( ╯□╰ )o'});
        }else if(error.response.code==403){
            Message.error({message:'权限不足，请联系管理员！'});
        }else if(error.response.code==4001){
            Message.error({message:'尚未登录，请登录'});
            router.replace('/');
        }else{
            if(error.response.data.message){
                Message.error({message:error.response.data.message});
            }else{
                Message.error({message:'未知错误！'})
            }
        }
        return;
    }
)

let base='';

export const postRequest=(url,params)=>{
    return axios({
        method:'post',
        url:`${base}${url}`,
        data:params
    })
}

export const getRequest=(url,params)=>{
    return axios({
        method:'get',
        url:`${base}${url}`,
        withCredentials: true,
        data:params,
    })
}